   1 .
   2 .P00L
   3 .
  10 clear ;BC=178;FC=149;&(0)=178;&(1)=178;&(2)=12;&(3)=12;&(9)=39;T=0
  20 box -3,-2,155,83,1;box -3,-2,152,79,2;NT=0;CX=17;CY=13;print "P 0 0 L
  30 box -70,32,20,12,1;box 0,32,23,12,1;box 64,32,18,12,1;box -70,-35,20,12,1;box 0,-35,23,12,1;box 64,-35,18,12,1
  40 gosub 75;X=-30;Y=4;B=-8;D=1;NT=1;for A=1to 5;for C=1to D;Y=Y-6;B=B+9;if B>10B=1
  50 gosub 300;next C;D=D+1;Y=ABS(Y)+6;X=X-6;next A;box -42,-2,1,3,3;box -42,-2,3,1,3;gosub 75
  55 B=0;Y=-2;for X=36to -24step -6;gosub 300;gosub 300;next X
  60 for A=49to 88;MU=A;next A;box 0,-2,144,42,2;@(0)=rnd (19)+5;@(16)=rnd (4)+5;@(33)=-71;@(34)=37
  65 X=75;for Y=-42to 38step 2;box X,Y,1,1,1;next Y;X=76;for Y=-42to 38step 10;box X,Y,1,1,1;next Y
  70 gosub 360;gosub 300;for B=1to 15;@(B)=rnd (19)+3;@(B+16)=rnd (12)+1;gosub 360;gosub 300;if PX(X+2,Y+2)=0gosub 370
  72 next B;goto 90
  75 line -22,0,4;line -58,18,3;line -58,-21,3;line -22,-3,3;line -22,0,3;return 
  80 @(0)=13;@(16)=7;gosub 300;gosub 360;gosub 300;@(33)=@(33)-6
  90 C=-42;Q=2;box 79,0,2,88,2
 100 box 79,C+Q,2,2,1;if TR(1)goto 150
 110 Q=Q+2;if Q<82goto 100
 120 box 79,C+Q,2,2,2;if TR(1)goto 150
 130 Q=Q-2;if Q<0goto 110
 140 goto 120
 150 B=0;Q=Qdiv 2;MU=60;if JX(1)=0if JY(1)=0goto 220
 160 goto 210
 170 W=KN(1);if ABS(W)<65goto 220
 180 W=Wdiv 65;if V=0V=W;goto 220
 190 if H=0H=W;goto 220
 200 H=0;goto 220
 210 H=JX(1);V=JY(1)
 220 gosub 360;J=X+Hmul 6;K=Y+Vmul 6;if (J<-75)+(J>70)H=-H;NT=3;MU=65;NT=1;goto 220
 230 if (K<-40)+(K>35)V=-V;MU=60;goto 220
 240 if PX(J,K+2)=0goto 270
 250 C=B;for A=0to 15;if (@(A)=@(B)+H)mul (@(A+16)=@(B+16)+V)B=A
 260 next A;if B#C NT=4;MU=55;NT=1;goto 170
 270 box X,Y,5,5,2;X=J;@(B)=@(B)+H;Y=K;@(B+16)=@(B+16)+V;gosub 300;if PX(X+2,Y+2)=0gosub 370;Q=0;if B=0goto 80
 280 Q=Q-1;if Q>0goto 220
 290 goto 90
 300 MU=75;if B=0box X,Y,3,3,3
 310 if B>7box X,Y,1,3,3
 320 if B=8box X,Y,3,1,3
 330 box X,Y,5,5,3;return 
 340 @(33)=@(33)+6;if B>8@(33)=@(33)-6;@(34)=@(34)+6
 350 return 
 360 X=@(B)mul 6-75;Y=@(B+16)mul 6-44;return 
 370 gosub 300;Y=41;X=@(33);@(B)=0;if B>8X=@(34)
 380 MU=70;MU=71;MU=72;MU=73;MU=74;MU=50;MU=48;gosub 300;gosub 340;if B#0T=T+1;if T=15goto 410
 390 if B=8goto 410
 400 @(B)=30;return 
 410 box 0,0,146,50,2;NT=0;CX=-23;CY=8;FC=8;print "GAME OVER
 420 if T#15FC=96;CX=-32;CY=-8;print "8 BALL LOSER";NT=9;for S=40to 33step -1;MU=S;next S
 430 if TR(1)run 
 440 goto 430
>:return 
